package br.com.simora.arquivo;
import java.io.File;
import java.io.IOException;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.inject.Named;

import org.apache.log4j.Logger;


@Named("arquivoDAO")
public class ArquivoDAO implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -7719727219613860541L;
	private static Logger logger = Logger.getLogger(ArquivoDAO.class);
	private static final String CAMINHO_LINUX = File.separator + "var" + File.separator + "music" + File.separator + "recognize" + File.separator;
	
	public void deletaArquivo(File file) {
		try{
    		if(file.delete()){
    			//logger.debug(file.getAbsolutePath() + " is deleted!");
    		}else{
    			logger.debug("Não foi possível deletar o arquivo: " + file.getAbsolutePath());
    		}
    	}catch(Exception e){
    		logger.debug(e.getMessage());
    	}
	}
	
	public void deletaArquivo(String caminhoCompleto) {
		try{
    		File file = new File(caminhoCompleto);
    		if(file.delete()){
    			//logger.debug(file.getAbsolutePath() + " is deleted!");
    		}else{
    			logger.debug("Não foi possível deletar o arquivo: " + file.getAbsolutePath());
    		}
    	}catch(Exception e){
    		logger.debug(e.getMessage());
    	}
	}
	
	/**
	 * Cria um arquivo com nome timestamp num determinado diretório.
	 * */
	public File criaArquivoTimestamp(String diretorio){
		SimpleDateFormat sm = new SimpleDateFormat("yyyyMMddHHmmss");
		String fileNameSemExtensao = sm.format(new Date()).trim();
		String fileName = fileNameSemExtensao + ".mp3";
		String path = diretorio + File.separator + fileName;
		String fullpath = CAMINHO_LINUX + path + "/";
		File f = new File(fullpath);
		f.getParentFile().mkdirs();
		f.setExecutable(true, false);
		f.setReadable(true, false);
		f.setWritable(true, false);
		try {
			f.createNewFile();
		} catch (IOException e) {
			e.printStackTrace();
			logger.debug(e.getMessage());
		}
		return f;
	}
}
